#ifndef _UARTX_H_
#define _UARTX_H_


#include <stdio.h>
#include <string.h>

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/uart.h"    //UART 驱动

#ifdef __cplusplus
extern "C" {
#endif

// uart2 rx和tx管脚配置
#define uart2_rx_gpio    16
#define uart2_tx_gpio    17

// uart2 tx和rx控制选择
// FLOWCTRLFLAG:0,软件控制流, 1,硬件控制流
#define FLOWCTRLFLAG    0
#define flowCtrl(ONOFF) \
    ONOFF?UART_HW_FLOWCTRL_CTS_RTS:UART_HW_FLOWCTRL_DISABLE

// RTS: 控制主机接收信息,低电平表示准备好
// CTS: 控制主机发送信息,低电平表示准备好
#if FLOWCTRLFLAG
#define RTS			2
#define CTS			4
#else
#define RTS			UART_PIN_NO_CHANGE
#define CTS			UART_PIN_NO_CHANGE
#endif

// 接收数据长度
#define RXTXBUFFERLEN 1024

// 接收数据的存储
// 调用完后不需要自己清空数据
extern char rxBufferData[RXTXBUFFERLEN];

int uartx_rx(void);
int uartx_tx(char* bufData);
void uartx_config(int baudSize);

#ifdef __cplusplus
} /*extern "C"*/
#endif

#endif



